package com.hdjd.dao;

import com.hdjd.entities.Opinion;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface OpinionDao {

    /**
     * 根据商品Id查看该商品的评价数量
     * @param goId
     * @return
     */
    Integer selectGoodsOpinionNum(@Param("goId") Integer goId);

    /**
     * 根据商品Id获取商品的好评率
     * @param goId
     * @return
     */
    Integer selectGoodsReputablyNum(@Param("goId") Integer goId);

    /**
     * 根据商品Id或者商品Id和商品类型查询商品的所有评价
     * @param goId
     * @return
     */
    List<Opinion> selectOpinionByGoIdOrOpiTypeAndGoId(@Param("goId") Integer goId,@Param("opiType") Integer opiType,@Param("pageStart") Integer pageStart,@Param("pageSize") Integer pageSize);

    /**
     *根据商品Id或者商品Id和商品类型查询商品的所有评价数
     * @param goId
     * @param opiType
     * @return
     */
    int selectOpinionNumByGoIdOrOpiTypeAndGoId(@Param("goId") Integer goId,@Param("opiType") Integer opiType);

    /**
     * 根据评价人查所有评价信息
     * @param accId
     * @return
     */
    List<Opinion> selectOpinionByAccId(@Param("accId") Integer accId,@Param("pageStart") Integer pageStart,@Param("pageSize") Integer pageSize);

    /**
     * 根据评价人查询所有评价数据笔数
     * @param accId
     * @return
     */
    int selectOpinionNumByAccId(@Param("accId") Integer accId);

    /**
     * 根据订单Id查询评价
     * @param detId
     * @return
     */
    Opinion selectOpinionByDetId(@Param("detId") Integer detId);

    int deleteByPrimaryKey(Integer opiId);

    int insert(Opinion record);

    int insertSelective(Opinion record);

    Opinion selectByPrimaryKey(Integer opiId);

    int updateByPrimaryKeySelective(Opinion record);

    int updateByPrimaryKey(Opinion record);
}